#ifndef _DLNACOMMON_H_
#define _DLNACOMMON_H_


#include "NptCommon.h"
#include "PltUPnP.h"
#include "PltMediaRenderer.h"
#include "PltStateVariable.h"
#include "NptNetwork.h"
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include "DataBaseMediaHelper.h"

#define DLNA_ANDROID 0
#define DLNA_LINUX 0
#define DLNA_IOS 1

#if DLNA_ANDROID
#include "Jni_Dlna_Debug_Config.h"
#endif
#if DLNA_LINUX
#include "Linux_Dlna_Debug_Config.h"
#endif
#if DLNA_IOS
#include "IOS_Dlna_Debug_Config.h"
#endif

#define LOG_FATAL_IF(x,y) {if(x)LOGE(y);}
void dmcActionCallApp(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);
void dmrActionCallApp(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);
void dmsActionCallApp(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);
void remoteCtlerActionCallApp(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);
void remoteCtlServerActionCallApp(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);
void remoteCtlServerActionSyncCallApp(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);
void dmsBaseFsActionCallApp(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);

extern void dmcActionCallAppJava(NPT_String & actionName, NPT_Map < NPT_String, NPT_String > & value);
extern void dmrActionCallAppJava(NPT_String & actionName, NPT_Map < NPT_String, NPT_String > & value);
extern void dmsActionCallAppJava(NPT_String & actionName, NPT_Map < NPT_String, NPT_String > & value);
extern void remoteCtlerActionCallAppJava(NPT_String & actionName, NPT_Map < NPT_String, NPT_String > & value);
extern void remoteCtlServerActionCallAppJava(NPT_String & actionName, NPT_Map < NPT_String, NPT_String > & value);
extern void dmsActionCallAppWithOutJava(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);
extern void dmsBaseFsActionCallAppJava(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);
extern void remoteCtlServerActionSyncCallAppJava(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);

extern void dmrActionCallCPLUSPLUS(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);
extern void dmcActionCallAppCPlusPlus(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);
extern void dmsActionCallCPLUSPLUS(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);
extern void dmsActionCallCPLUSPLUSWithOut(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);
extern void remoteCtlServerActionCallAppCPlusPlus(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);
extern void dmsBaseFsActionCallAppCPlusPlus(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);

extern void dmrActionCallIOS(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);
extern void dmcActionCallAPPIOS(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);
extern void dmsActionCallIOS(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);
extern void dmsActionCallIOSWITHOUT(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);
extern void dmsBaseFsActionCallAppIOS(NPT_String& actionName,NPT_Map<NPT_String, NPT_String>& value);
extern void remoteCtlerActionCallAppIOS(NPT_String & actionName, NPT_Map < NPT_String, NPT_String > & value);
extern void remoteCtlServerActionCallAppIOS(NPT_String & actionName, NPT_Map < NPT_String, NPT_String > & value);

#endif


